﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;

namespace ImmovablesManager
{
    public class DataGridFlatsDataView : INotifyPropertyChanged
    {
        private Guid _flatId;
        public Guid FlatId
        {
            get { return _flatId; }
            set 
            {
                _flatId = value;
                NotifyPropertyChanged("FlatId");
            }
        }


        private string _address;
        public string Address
        {
            get { return _address; }
            set
            {
                _address = value;
                NotifyPropertyChanged("Address");
            }
        }


        private int? _roomCount;
        public int? RoomCount
        {
            get { return _roomCount; }
            set {
                    _roomCount = value;
                    NotifyPropertyChanged("RoomCount");
                }
        }

        private int? _floor;
        public int? Floor
        {
            get { return _floor; }
            set 
            {
                _floor = value; 
                NotifyPropertyChanged("Floor");
            }
        }

        private int? _floorsCount;
        public int? FloorsCount
        {
            get { return _floorsCount; }
            set 
            { 
                _floorsCount = value;
                NotifyPropertyChanged("FloorsCount");
            }
        }

        private string _material;
        public string Material
        {
            get { return _material; }
            set 
            { 
                _material = value;
                NotifyPropertyChanged("Material");
            }
        }

        private double? _totalArea;
        public double? TotalArea
        {
            get { return _totalArea; }
            set 
            {
                _totalArea = value;
                NotifyPropertyChanged("TotalArea");
            }
        }

        private double? _livingArea;
        public double? LivingArea
        {
            get { return _livingArea; }
            set {
                    _livingArea = value;
                    NotifyPropertyChanged("LivingArea");
            }
        }

        private double? _kitchenArea;
        public double? KitchenArea
        {
            get { return _kitchenArea; }
            set
            {
                _kitchenArea = value;
                NotifyPropertyChanged("KitchenArea");
            }
        }

        //private double? _costPerMeter;
        //public double? CostPerMeter
        //{
        //    get { return _costPerMeter; }
        //    set
        //    {
        //        _costPerMeter = value;
        //        NotifyPropertyChanged("CostPerMeter");
        //    }
        //}

        private double? _totalCost;
        public double? TotalCost
        {
            get { return _totalCost; }
            set
            {
                _totalCost = value;
                NotifyPropertyChanged("TotalCost");
            }
        }

        //private DateTime _putDate;
        //private DateTime PutDate
        //{
        //    get { return _putDate; }
        //    set
        //    {
        //        _putDate = value;
        //        NotifyPropertyChanged("PutDate");
        //    }
        //}

        private string _additionalDescription;
        public string AdditionalDescription
        {
            get { return _additionalDescription; }
            set
            {
                _additionalDescription = value;
                NotifyPropertyChanged("AdditionalDescription");
            }
        }

        private string _irr;
        public string IRR
        {
            get { return _irr; }
            set
            {
                _irr = value;
                NotifyPropertyChanged("IRR");
            }
        }

        private string _note;
        public string Note
        {
            get { return _note; }
            set
            {
                _note = value;
                NotifyPropertyChanged("Note");
            }
        }


        private void NotifyPropertyChanged(String info)
        {
            if (PropertyChanged != null)
            {
                PropertyChanged(this, new PropertyChangedEventArgs(info));
            }
        }


        #region Implementation of INotifyPropertyChanged

        public event PropertyChangedEventHandler PropertyChanged;

        #endregion
    }
}
